package com.restfb.etl.persistencia;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.restfb.etl.mundo.Usuario;

public class Usuarios {
	private Connection connection;

	public Usuarios(List<Usuario> misUsuarios, Connection nConnection) {
		connection = nConnection;

	}

	public List<String> cargarUsuarios(List<Usuario> misUsuarios) 
	{
		
		List<String> ids = new ArrayList<String>();

		try 
		{
			
			for (Usuario temp : misUsuarios) 
			{

				PreparedStatement pstm = null;
				
				String select="SELECT USUARIO_KEY FROM DIM_USUARIO ORDER BY USUARIO_KEY ";
				
				Statement st=connection.createStatement();
				
				ResultSet res=st.executeQuery(select);
				int idUserResp=1;
				if(res.last())
				{
					idUserResp=res.getInt(1);
					idUserResp++;
				}
				res.close();
				
				String insert = "INSERT INTO DIM_USUARIO ( USUARIO_KEY,   USUARIO_NOMBRE ,  USUARIO_LOGIN  , " +
						"USUARIO_GENERO ,  USUARIO_FECHA_NACIMIENTO  , USUARIO_CIUDAD_ACTUAL ," +
						"USUARIO_CIUDAD_ORIGEN ,  USUARIO_PAIS_ORIGEN , USUARIO_PAIS_ACTUAL ,  USUARIO_ESTADO_CIVIL ," +
						"USUARIO_RELIGION ,  USUARIO_FILIACION_POLITICA , USUARIO_MUSICA_FAVORITA ," +
						"  USUARIO_PROGRAMATV_FAVORITO ,  USUARIO_LIBRO_FAVORITO ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";  
  
				pstm = connection.prepareStatement(insert);
				
				pstm.setInt(1, idUserResp);
				pstm.setString(2, temp.name);
				pstm.setString(3, temp.email);
				pstm.setString(4, temp.sex);
				pstm.setString(5, temp.birthday_date );
				if( temp.current_location != null)
				{
					pstm.setString(6, temp.current_location.city);
					pstm.setString(9, temp.current_location.country);
				}
				else
				{
					pstm.setString(6, "null");
					pstm.setString(9, "null");
				}
				
				if( temp.hometown_location != null )
				{
					pstm.setString(7, temp.hometown_location.city);
					pstm.setString(8, temp.hometown_location.country);
				}
				
				else
				{
					pstm.setString(7,"null");
					pstm.setString(8,"null");
				}
				
				pstm.setString(10, temp.relationship_status);
				pstm.setString(11, temp.religion);
				pstm.setString(12, temp.political);
				pstm.setString(13, temp.music);
				pstm.setString(14, temp.tv);
				pstm.setString(15, temp.books);
				
				pstm.executeUpdate();
				pstm.close();
				
				ids.add(idUserResp+"");
								
				
			}

			

		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
		
		return ids;
	}

}
